package cc.rengu.igas.momp.common.dao;

import cc.rengu.igas.momp.common.entity.TMTxnOrder;

/**
 * 订单流水表数据库操作接口定义
 *
 * @author Jinan Liu
 * @version 1.0.0
 * @date 2020/4/17 10:09
 */

public interface TMTxnOrderMapper {

    /**
     * 新增单条订单流水数据库操作接口定义
     *
     * @param tmTxnOrder 订单流水表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/17 10:10
     */
    int insertSingleRecordIntoTMTxnOrder(TMTxnOrder tmTxnOrder) throws Exception;

    /**
     * 合并支付冲正服务取原交易流水信息数据库操作接口定义
     *
     * @param instId    法人机构号
     * @param transDate 交易日期
     * @param traceNo   流水号
     * @return cc.rengu.igas.momp.common.entity.TMTxnOrder 订单流水表
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/23 09:23
     */
    TMTxnOrder selectTransactionOrderInfo(String instId, String transDate, String traceNo) throws Exception;

    /**
     * 合并支付冲正服务更新原交易流水业务状态数据库操作定义
     *
     * @param tmTxnOrder 订单流水表
     * @return int 返回码
     * @throws Exception 异常信息
     * @author Jinan Liu
     * @date 2020/4/23 14:45
     */
    int updateOriginalTransactionOrderBizStatus(TMTxnOrder tmTxnOrder) throws Exception;

    /**
     * 手续费优惠冲正服务获取原交易流水信息数据库操作接口定义
     *
     * @param instId      法人机构号
     * @param transDate   交易日期
     * @param origTraceNo 原交易流水号
     * @return cc.rengu.igas.momp.common.entity.TMTxnOrder 订单流水表
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/5/8
     */
    TMTxnOrder selectFeeDiscountOriginalTransactionOrderInfo(String instId, String transDate, String origTraceNo) throws Exception;

    /**
     * 手续费优惠冲正服务更新原交易流水业务状态数据库操作定义
     *
     * @param tmTxnOrder 订单流水表
     * @param bizStatus  业务状态
     * @return int 返回码
     * @throws Exception 异常信息
     * @author liujinan
     * @date 2020/5/8
     */
    int updateFeeDiscountOriginalTransactionOrderBizStatus(TMTxnOrder tmTxnOrder, String bizStatus) throws Exception;
}
